package com.net.oil.user.contract;

import com.net.oil.base.IBaseModel;
import com.net.oil.user.bean.CheckPhoneBean;

/**
 * 作者：lch
 * 时间：2018/4/2:14:08
 * 邮箱：245850413@qq.com
 * 说明：
 */

public interface ResetLoginPasswordContract {

    interface Model extends IBaseModel{

        /**
         * 检查手机号是否已经注册
         * @param phone 手机号
         */
        void checkPhone(String phone);

        /**
         *获取手机验证码
         * @param phone 手机号
         * @param ptt   是否是语音
         */
        void getPhoneCode(String phone, boolean ptt);

        /**
         * 验证手机验证码是否正确
         * @param phone 手机号
         * @param code  验证码
         */
        void verifyCode(String phone, String code);

        /**
         * 重置登录密码
         * @param phone 手机号
         * @param code  验证码
         * @param newPassword   新密码
         */
        void resetLoginPassword(String phone, String code, String newPassword);
    }

    interface View {

        /**
         * 检查手机号是否注册成功
         * @param checkPhoneBean  返回数据
         */
        void checkPhoneSuccess(CheckPhoneBean checkPhoneBean);

        /**
         * 检查手机号是否注册失败
         */
        void checkPhoneFailed();

        /**
         * 获取验证码成功
         */
        void getPhoneCodeSuccess();

        /**
         * 获取验证码失败
         */
        void getPhoneCodeFailed();

        /**
         * 验证手机验证码是否正确
         */
        void verifyCodeSuccess();

        /**
         * 验证手机验证码失败
         */
        void verifyCodeFailed();

        /**
         * 重置登录密码成功
         */
        void resetLoginPasswordSuccess();

        /**
         * 重置登录密码失败
         */
        void resetLoginPasswordFailed();
    }

    interface Presenter {

        /**
         * 检查手机号是否已经注册
         * @param phone 手机号
         */
        void checkPhone(String phone);

        /**
         * 检查手机号是否注册成功
         * @param checkPhoneBean  返回数据
         */
        void checkPhoneSuccess(CheckPhoneBean checkPhoneBean);

        /**
         * 检查手机号是否注册失败
         */
        void checkPhoneFailed();

        /**
         *获取手机验证码
         * @param phone 手机号
         * @param ptt   是否是语音
         */
        void getPhoneCode(String phone, boolean ptt);

        /**
         * 获取验证码成功
         */
        void getPhoneCodeSuccess();

        /**
         * 获取验证码失败
         */
        void getPhoneCodeFailed();

        /**
         * 验证手机验证码是否正确
         * @param phone 手机号
         * @param code  验证码
         */
        void verifyCode(String phone, String code);

        /**
         * 验证手机验证码是否正确
         */
        void verifyCodeSuccess();

        /**
         * 验证手机验证码失败
         */
        void verifyCodeFailed();

        /**
         * 重置登录密码
         * @param phone 手机号
         * @param code  验证码
         * @param newPassword   新密码
         */
        void resetLoginPassword(String phone, String code, String newPassword);

        /**
         * 重置登录密码成功
         */
        void resetLoginPasswordSuccess();

        /**
         * 重置登录密码失败
         */
        void resetLoginPasswordFailed();

    }
}
